/* 由 ecpg 处理（回归模式） */
/* 这些包含文件由预处理器添加 */
#include <ecpglib.h>
#include <ecpgerrno.h>
#include <sqlca.h>
/* 自动包含部分结束 */
#define ECPGdebug(X,Y) ECPGdebug((X)+100,(Y))

#line 1 "init.pgc"

#line 1 "sqlca.h"
#ifndef POSTGRES_SQLCA_H
#define POSTGRES_SQLCA_H

#ifndef PGDLLIMPORT
#if  defined(WIN32) || defined(__CYGWIN__)
#define PGDLLIMPORT __declspec (dllimport)
#else
#define PGDLLIMPORT
#endif							/* __CYGWIN__ */
#endif							/* PGDLLIMPORT */

#define SQLERRMC_LEN	150

#ifdef __cplusplus
extern "C"
{
#endif

struct sqlca_t
{
	char		sqlcaid[8];
	long		sqlabc;
	long		sqlcode;
	struct
	{
		int			sqlerrml;
		char		sqlerrmc[SQLERRMC_LEN];
	}			sqlerrm;
	char		sqlerrp[8];
	long		sqlerrd[6];
	/* 元素 0: 空的						*/
	/* 1: 如果适用，处理的元组的 OID		*/
	/* 2: 处理的行数				*/
	/* 在 INSERT、UPDATE 或				*/
	/* DELETE 语句之后					*/
	/* 3: 空的						*/
	/* 4: 空的						*/
	/* 5: 空的						*/
	char		sqlwarn[8];
	/* 元素 0: 如果至少有一个其他为 'W' 则设置为 'W'	*/
	/* 1: 如果 'W' 至少一个字符字符串		*/
	/* 值在存储到主机变量时被截断。             */
	/*
	 * 2: 如果 'W' 发生了（希望是）非致命的通知
	 */

	/* 3: 空的 */	/* 4: 空的						*/
	/* 4: 空的						*/
	/* 5: 空的						*/
	/* 7: 空的						*/
	/* 执行 SQL 开始声明部分 */

	char		sqlstate[5];
};

struct sqlca_t *ECPGget_sqlca(void);

#ifndef POSTGRES_ECPG_INTERNAL
#define sqlca (*ECPGget_sqlca())
#endif

#ifdef __cplusplus
}
#endif

#endif

#line 1 "init.pgc"


enum e { ENUM0, ENUM1 };
struct sa { int member; };

static int fc_fa(void)
{
	printf("in fa\n");
	return 2;
}

static int fc_fb(int fc_x)
{
	printf("in fb (%d)\n", fc_x);
	return fc_x;
}

static int fc_fc(const char *fc_x)
{
	printf("in fc (%s)\n", fc_x);
	return *fc_x;
}

static int fc_fd(const char *fc_x,int fc_i)
{
	printf("in fd (%s, %d)\n", fc_x, fc_i);
	return (*fc_x)*fc_i;
}

static int fc_fe(enum e fc_x)
{
	printf("in fe (%d)\n", (int) fc_x);
	return (int)fc_x;
}

static void fc_sqlnotice(const char *fc_notice, short fc_trans)
{
	if (!fc_notice)
		fc_notice = "-empty-";
	printf("in sqlnotice (%s, %d)\n", fc_notice, fc_trans);
}



#define YES 1

#ifdef _cplusplus
namespace N
{
	static const int i=2;
};
#endif

int main(void)
{
	struct sa fc_x = { 14 },*fc_y = &fc_x;
	/* 执行 SQL 结束声明部分 */
		 
		 
		 
		 
		 
		 
		 

		 
		 
		 
		  /* = 1L */ 
	
#line 60 "init.pgc"
 int fc_a = ( int ) 2 ;
 
#line 61 "init.pgc"
 int fc_b = 2 + 2 ;
 
#line 62 "init.pgc"
 int fc_b2 = ( 14 * 7 ) ;
 
#line 63 "init.pgc"
 int fc_d = fc_x . member ;
 
#line 64 "init.pgc"
 int fc_g = fc_fb ( 2 ) ;
 
#line 65 "init.pgc"
 int fc_i = 3 ^ 1 ;
 
#line 66 "init.pgc"
 int fc_j = 1 ? 1 : 2 ;
 
#line 68 "init.pgc"
 int fc_e = fc_y -> member ;
 
#line 69 "init.pgc"
 int fc_c = 10 >> 2 ;
 
#line 70 "init.pgc"
 bool fc_h = 2 || 1 ;
 
#line 71 "init.pgc"
 long fc_iay ;
/*
 * 默认连接: con2
 * 非默认连接: con1
 *
 */
#line 72 "init.pgc"


	int fc_f=fc_fa();

#ifdef _cplusplus
	/* 执行 SQL 结束声明部分 */
	  /* compile error */
	
#line 78 "init.pgc"
 int k = N : : i ;
/*
 * 默认连接: con2
 * 非默认连接: con1
 *
 */
#line 79 "init.pgc"

#endif

	ECPGdebug(1, stderr);

	printf("%d %d %d %d %d %d %d %d %d %d %d\n", fc_a, fc_b, fc_b2, fc_c, fc_d, fc_e, fc_f, fc_g, fc_h, fc_i, fc_j);
	fc_iay = 0;
	printf("%ld\n", fc_iay);
	/* exec sql whenever sqlerror  do fa ( ) ; */
#line 87 "init.pgc"

	{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select now ( )", ECPGt_EOIT, ECPGt_EORT);
#line 88 "init.pgc"

if (sqlca.sqlcode < 0) fc_fa ( );}
#line 88 "init.pgc"

	/* exec sql whenever sqlerror  do fb ( 20 ) ; */
#line 89 "init.pgc"

	{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select now ( )", ECPGt_EOIT, ECPGt_EORT);
#line 90 "init.pgc"

if (sqlca.sqlcode < 0) fc_fb ( 20 );}
#line 90 "init.pgc"

	/* exec sql whenever sqlerror  do fc ( \"50\" ) ; */
#line 91 "init.pgc"

	{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select now ( )", ECPGt_EOIT, ECPGt_EORT);
#line 92 "init.pgc"

if (sqlca.sqlcode < 0) fc_fc ( "50" );}
#line 92 "init.pgc"

	/* exec sql whenever sqlerror  do fd ( \"50\" , 1 ) ; */
#line 93 "init.pgc"

	{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select now ( )", ECPGt_EOIT, ECPGt_EORT);
#line 94 "init.pgc"

if (sqlca.sqlcode < 0) fc_fd ( "50" , 1 );}
#line 94 "init.pgc"

	/* exec sql whenever sqlerror  do fe ( ENUM0 ) ; */
#line 95 "init.pgc"

	{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select now ( )", ECPGt_EOIT, ECPGt_EORT);
#line 96 "init.pgc"

if (sqlca.sqlcode < 0) fc_fe ( ENUM0 );}
#line 96 "init.pgc"

	/* exec sql whenever sqlerror  do sqlnotice ( NULL , 0 ) ; */
#line 97 "init.pgc"

	{ ECPGdo(__LINE__, 0, 1, NULL, 0, ECPGst_normal, "select now ( )", ECPGt_EOIT, ECPGt_EORT);
#line 98 "init.pgc"

if (sqlca.sqlcode < 0) fc_sqlnotice ( NULL , 0 );}
#line 98 "init.pgc"

	return 0;
}
